package com.container;

/**
 * Esta Clase Almacena la informacion de un Libro.
 * @author Javier
 */
public class Libro {
	
	private long id;
	private String nombre;
	private String genero;
	private String autor;
	private String descripcion;
	private String editorial;
	private double precio;
	
	/**
	 * Crea una instancia de Libro.
	 */
	public Libro(){
		id = -1;
	}
	
	public Libro(long id){
		this.id = id;
	}
	
	public Libro (String nombre){
		id = -1;
		this.nombre = nombre;
	}
	
	public Libro (long id, String nombre){
		this.id = id;
		this.nombre = nombre;
	}
	
	public Libro (long id, String nom, String aut, double prec){
		this.id = id;
		this.nombre = nom;
		this.autor = aut;
		this.precio = prec;
	}
	
	public Libro (Libro libro){
		this.id = libro.getId();
		this.nombre = libro.getNombre();
		this.autor = libro.getAutor();
		this.precio = libro.getPrecio();
		this.editorial = libro.getEditorial();
		this.descripcion = libro.getDescripcion();
		this.genero = libro.getGenero();
	}
	
	/**
	 * Crea una instancia de Libro a partir de los parametros de entrada.
	 * @param id
	 * @param nombre
	 * @param genero
	 * @param autor
	 * @param descripcion
	 * @param editorial
	 * @param precio
	 */
	public Libro(long id, String nombre, String genero, String autor,
			String descripcion, String editorial, double precio){
		this.id = id;
		this.nombre = nombre;
		this.genero = genero;
		this.autor = autor;
		this.descripcion = descripcion;
		this.editorial = editorial;
		this.precio = precio;
	}
	
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getGenero() {
		return genero;
	}
	public void setGenero(String genero) {
		this.genero = genero;
	}
	public String getAutor() {
		return autor;
	}
	public void setAutor(String autor) {
		this.autor = autor;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public String getEditorial() {
		return editorial;
	}
	public void setEditorial(String editorial) {
		this.editorial = editorial;
	}
	public double getPrecio() {
		return precio;
	}
	public void setPrecio(double precio) {
		this.precio = precio;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (int) (id ^ (id >>> 32));
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Libro other = (Libro) obj;
		if (id != other.id)
			return false;
		return true;
	}
	
	
}
